/*!
 * \file rsgisappinterface.h
 * \brief 插件类接口实现文件
 * \author 张龙星
 * \version 1.00.00
 * \date 2015-08-04
 * \copyright 航天恒星科技有限公司遥感测绘事业部
 * \details 编码文件使用UTF-8编码格式，使用匈牙利命名法，使用doxygen注释样式
 *          类名采用RSGIS开头，动态库抛出标识采用XXXX_EXPORT
 */
#ifndef RSGISAPPINTERFACE_H
#define RSGISAPPINTERFACE_H

#include <QDockWidget>
#include "rsgisinterface.h"
#include "rsgisapp_global.h"

/*!
 * \brief The RSGISAppInterface是插件接口实现类
 */
class RSGISAPPSHARED_EXPORT RSGISAppInterface : public RSGISInterface
{
    Q_OBJECT
public:
    /*!
     * \brief RSGISAppInterface 构造函数
     * \param parent 主窗口类指针
     */
    explicit RSGISAppInterface(RSGISWindow *parent = 0);

    /*!
     * \brief 析构函数
     */
    ~RSGISAppInterface();

    /*!
     * \brief mainWindow 获取主窗口，对基类的虚函数进行实现
     * \return 主窗口指针
     */
    RSGISWindow* mainWindow() override;

    /*!
     * \brief pluginManagerInterface
     * \return
     */
    RSGISPluginManagerInterface* pluginManagerInterface() override;

    /*!
     * \brief layerDockWidget 获取图层管理浮动框
     * \return 图层管理浮动
     */
    QDockWidget* layerDockWidget() override;

    /*!
     * \brief propertyDockWidget 获取属性浮动框
     * \return 属性浮动框
     */
    QDockWidget* propertyDockWidget() override;

    /*!
     * \brief logOutDockWidget 获取日志输出浮动框
     * \return 日志输出浮动框
     */
    QDockWidget* logOutDockWidget() override;

signals:

public slots:

private:
    /*!
     * \brief m_pRSGISWindow 主窗口指针
     */
    RSGISWindow* m_pRSGISWindow;

//    RSGISAppPluginManagerInterface m_PluginManagerIface;
};

#endif // RSGISAPPINTERFACE_H
